home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Unix / Shells / tcsh / Source / sh.init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-21  |  25.7 KB  |  867 lines

  1. /* $Header: /u/christos/src/tcsh-6.03/RCS/sh.init.c,v 3.24 1992/11/20 08:56:38 christos Exp $ */
  2. /*
  3.  * sh.init.c: Function and signal tables
  4.  */
  5. /*-
  6.  * Copyright (c) 1980, 1991 The Regents of the University of California.
  7.  * All rights reserved.
  8.  *
  9.  * Redistribution and use in source and binary forms, with or without
  10.  * modification, are permitted provided that the following conditions
  11.  * are met:
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in the
  16.  *    documentation and/or other materials provided with the distribution.
  17.  * 3. All advertising materials mentioning features or use of this software
  18.  *    must display the following acknowledgement:
  19.  *    This product includes software developed by the University of
  20.  *    California, Berkeley and its contributors.
  21.  * 4. Neither the name of the University nor the names of its contributors
  22.  *    may be used to endorse or promote products derived from this software
  23.  *    without specific prior written permission.
  24.  *
  25.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  26.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  27.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  28.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  29.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  30.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  31.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  32.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  34.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  35.  * SUCH DAMAGE.
  36.  */
  37. #include "sh.h"
  38.  
  39. RCSID("$Id: sh.init.c,v 3.24 1992/11/20 08:56:38 christos Exp $")
  40.  
  41. #include "ed.h"
  42. #include "tw.h"
  43.  
  44. /*
  45.  * C shell
  46.  */
  47.  
  48. #define    INF    0x7fffffff
  49.  
  50. struct    biltins bfunc[] = {
  51.     { ":",        dozip,        0,    INF, },
  52.     { "@",        dolet,        0,    INF, },
  53.     { "alias",        doalias,    0,    INF, },
  54.     { "aliases",    doaliases,    0,    1, /* PWP */ },
  55.     { "alloc",        showall,    0,    1, },
  56.     { "bg",        dobg,        0,    INF, },
  57.     { "bind",        dobind,        0,    2, },
  58.     { "bindkey",    dobindkey,    0,    8, },
  59.     { "break",        dobreak,    0,    0, },
  60.     { "breaksw",    doswbrk,    0,    0, },
  61.     { "builtins", dobuiltins,    0,    0, },
  62. #if defined(IIASA) || defined(KAI)
  63.     { "bye",        goodbye,    0,    0, },
  64. #endif
  65.     { "case",        dozip,        0,    1, },
  66.     { "cd",        dochngd,    0,    INF, },
  67.     { "chdir",        dochngd,    0,    INF, },
  68.     { "complete",    docomplete,    0,    INF, },
  69.     { "continue",    docontin,    0,    0, },
  70.     { "default",    dozip,        0,    0, },
  71.     { "dirs",        dodirs,        0,    INF, },
  72.     { "echo",        doecho,        0,    INF, },
  73.     { "echotc",        doechotc,    0,    INF, },
  74.     { "else",        doelse,        0,    INF, },
  75.     { "end",        doend,        0,    0, },
  76.     { "endif",        dozip,        0,    0, },
  77.     { "endsw",        dozip,        0,    0, },
  78.     { "eval",        doeval,        0,    INF, },
  79.     { "exec",        execash,    1,    INF, },
  80.     { "exit",        doexit,        0,    INF, },
  81.     { "fg",        dofg,        0,    INF, },
  82.     { "foreach",    doforeach,    3,    INF, },
  83. #ifdef TCF
  84.     { "getspath",    dogetspath,    0,    0, },
  85.     { "getxvers",     dogetxvers,    0,    0, },
  86. #endif /* TCF */
  87. #ifdef IIASA
  88.     { "gd",        dopushd,    0,    INF, },
  89. #endif
  90.     { "glob",        doglob,        0,    INF, },
  91.     { "goto",        dogoto,        1,    1, },
  92. #ifdef VFORK
  93.     { "hashstat",    hashstat,    0,    0, },
  94. #endif
  95.     { "history",    dohist,        0,    2, },
  96.     { "if",        doif,        1,    INF, },
  97. #ifdef apollo
  98.     { "inlib",         doinlib,    1,    INF, },
  99. #endif
  100.     { "jobs",        dojobs,        0,    1, },
  101.     { "kill",        dokill,        1,    INF, },
  102. #ifndef HAVENOLIMIT
  103.     { "limit",        dolimit,    0,    3, },
  104. #endif /* ! HAVENOLIMIT */
  105.     { "linedit",    doecho,        0,    INF, },
  106. #if !defined(HAVENOUTMP) && !defined(KAI)
  107.     { "log",        dolog,        0,    0, },
  108. #endif /* !HAVENOUTMP && !KAI */
  109.     { "login",        dologin,    0,    1, },
  110.     { "logout",        dologout,    0,    0, },
  111.     { "ls-F",        dolist,        0,    INF, },
  112. #ifdef TCF
  113.     { "migrate",    domigrate,    1,    INF, },
  114. #endif /* TCF */
  115. #ifdef NEWGRP
  116.     { "newgrp",        donewgrp,    1,    2, },
  117. #endif
  118.     { "nice",        donice,        0,    INF, },
  119.     { "nohup",        donohup,    0,    INF, },
  120.     { "notify",        donotify,    0,    INF, },
  121.     { "onintr",        doonintr,    0,    2, },
  122.     { "popd",        dopopd,        0,    INF, },
  123.     { "pushd",        dopushd,    0,    INF, },
  124. #ifdef IIASA
  125.     { "rd",        dopopd,        0,    INF, },
  126. #endif
  127.     { "rehash",        dohash,        0,    3, },
  128.     { "repeat",        dorepeat,    2,    INF, },
  129. #ifdef apollo
  130.     { "rootnode",    dorootnode,    1,    1, },
  131. #endif
  132.     { "sched",        dosched,    0,    INF, },
  133.     { "set",        doset,        0,    INF, },
  134.     { "setenv",        dosetenv,    0,    2, },
  135. #ifdef MACH
  136.     { "setpath",    dosetpath,    0,    INF, },
  137. #endif    /* MACH */
  138. #ifdef TCF
  139.     { "setspath",    dosetspath,    1,    INF, },
  140. #endif /* TCF */
  141.     { "settc",        dosettc,    2,    2, },
  142.     { "setty",         dosetty,    0,      INF },
  143. #ifdef TCF
  144.     { "setxvers",    dosetxvers,    0,    1, },
  145. #endif /* TCF */
  146.     { "shift",        shift,        0,    1, },
  147.     { "source",        dosource,    1,    INF, },
  148.     { "stop",        dostop,        1,    INF, },
  149.     { "suspend",    dosuspend,    0,    0, },
  150.     { "switch",        doswitch,    1,    INF, },
  151.     { "telltc",        dotelltc,    0,    INF, },
  152.     { "time",        dotime,        0,    INF, },
  153.     { "umask",        doumask,    0,    1, },
  154.     { "unalias",    unalias,    1,    INF, },
  155.     { "uncomplete",    douncomplete,    1,    INF, },
  156.     { "unhash",        dounhash,    0,    0, },
  157. #ifdef masscomp
  158.     { "universe",    douniverse,    0,    1, },
  159. #endif
  160. #ifndef HAVENOLIMIT
  161.     { "unlimit",    dounlimit,    0,    INF, },
  162. #endif /* !HAVENOLIMIT */
  163.     { "unset",        unset,        1,    INF, },
  164.     { "unsetenv",    dounsetenv,    1,    INF, },
  165. #ifdef apollo
  166.     { "ver",        dover,        0,    INF, },
  167. #endif
  168.     { "wait",        dowait,        0,    0, },
  169. #ifdef WARP
  170.     { "warp",        dowarp,        0,    2, },
  171. #endif
  172. #if !defined(HAVENOUTMP) && defined(KAI)
  173.     { "watchlog",    dolog,        0,    0, },
  174. #endif /* !HAVENOUTMP && KAI */
  175.     { "where",        dowhere,    1,    INF, },
  176.     { "which",        dowhich,    1,    INF, },
  177.     { "while",        dowhile,    1,    INF, },
  178. };
  179. int nbfunc = sizeof bfunc / sizeof *bfunc;
  180.  
  181. struct srch srchn[] = {
  182.     { "@",        TC_LET, },
  183.     { "break",        TC_BREAK, },
  184.     { "breaksw",    TC_BRKSW, },
  185.     { "case",        TC_CASE, },
  186.     { "default",     TC_DEFAULT, },
  187.     { "else",        TC_ELSE, },
  188.     { "end",        TC_END, },
  189.     { "endif",        TC_ENDIF, },
  190.     { "endsw",        TC_ENDSW, },
  191.     { "exit",        TC_EXIT, },
  192.     { "foreach",     TC_FOREACH, },
  193.     { "goto",        TC_GOTO, },
  194.     { "if",        TC_IF, },
  195.     { "label",        TC_LABEL, },
  196.     { "set",        TC_SET, },
  197.     { "switch",        TC_SWITCH, },
  198.     { "while",        TC_WHILE, },
  199. };
  200. int nsrchn = sizeof srchn / sizeof *srchn;
  201.  
  202. #ifdef SUSPENDED
  203. # define MSG_STOP        "Suspended (signal)"
  204. # define MSG_TSTP        "Suspended"
  205. # define MSG_TTIN        "Suspended (tty input)"
  206. # define MSG_TTOU        "Suspended (tty output)"
  207. #else /* STOPPED */
  208. # define MSG_STOP        "Stopped (signal)"
  209. # define MSG_TSTP        "Stopped"
  210. # define MSG_TTIN        "Stopped (tty input)"
  211. # define MSG_TTOU        "Stopped (tty output)"
  212. #endif /* SUSPENDED */
  213. /*
  214.  * Note: For some machines, (hpux eg.)
  215.  * NSIG = number of signals + 1...
  216.  * so we define 33 signals for 
  217.  * everybody
  218.  */
  219. struct    mesg mesg[] = {
  220. /*  0 */    0,        "",
  221. /*  1 */    "HUP",        "Hangup",
  222. /*  2 */    "INT",        "Interrupt",    
  223. /*  3 */    "QUIT",        "Quit",
  224. /*  4 */    "ILL",        "Illegal instruction",
  225. /*  5 */    "TRAP",        "Trace/BPT trap",
  226. #if SYSVREL > 3 || defined(__EMX__) || defined(_VMS_POSIX)
  227. /*  6 */    "ABRT",        "Abort",
  228. #else /* SYSVREL < 3 */
  229. /*  6 */    "IOT",        "IOT trap",
  230. #endif /* SYSVREL > 3 || __EMX__ || _VMS_POSIX */
  231. #ifdef aiws
  232. /*  7 */    "DANGER",     "System Crash Imminent",
  233. #else /* !aiws */
  234. # ifdef linux
  235. /*  7 */    0,        "Signal 7",
  236. # else /* !linux */
  237. #  ifdef _CRAY
  238. /*  7 */    "ERR",        "Error exit",
  239. #  else /* !_CRAY */
  240. /*  7 */    "EMT",        "EMT trap",
  241. #  endif /* _CRAY */
  242. # endif /* linux */
  243. #endif /* aiws */
  244. /*  8 */    "FPE",        "Floating exception",
  245. /*  9 */    "KILL",        "Killed",
  246. #ifdef linux
  247. /* 10 */    "USR1",        "User signal 1",
  248. /* 11 */    "SEGV",        "Segmentation fault",
  249. /* 12 */    "USR2",        "User signal 2",
  250. #else /* linux */
  251. # ifndef _CRAY
  252. /* 10 */    "BUS",        "Bus error",
  253. /* 11 */    "SEGV",        "Segmentation fault",
  254. # else /* _CRAY */
  255. /* 10 */    "PRE",        "Program range error",
  256. /* 11 */    "ORE",        "Operand range error",
  257. # endif /* !_CRAY */
  258. /* 12 */    "SYS",        "Bad system call",
  259. #endif /* linux */
  260. /* 13 */    "PIPE",        "Broken pipe",
  261. /* 14 */    "ALRM",        "Alarm clock",
  262. /* 15 */    "TERM",        "Terminated",
  263.  
  264. #if (SYSVREL > 0) || defined(DGUX) || defined(IBMAIX) || defined(apollo) || defined(masscomp) || defined(ardent) || defined(linux)
  265.  
  266. # ifdef _sigextra_
  267. #  undef  _sigextra_
  268. # endif /* _sigextra_ */
  269.  
  270. # if !defined(IBMAIX) && !defined(cray) && !defined(__EMX__) && !defined(linux)
  271. /* these are the real svid signals */
  272. /* 16 */    "USR1",        "User signal 1",
  273. /* 17 */    "USR2",     "User signal 2",
  274. #  ifdef apollo
  275. /* 18 */    "CLD",        "Death of child",
  276. /* 19 */    "APOLLO",      "Apollo-specific fault",
  277. #  else
  278. /* 18 */    "CHLD",        "Child exited",
  279. #  ifdef SOLARIS2
  280. /* 19 */    "LOST",      "Resource Lost",
  281. #  else /* !SOLARIS2 */
  282. /* 19 */    "PWR",      "Power failure",
  283. #  endif /* SOLARIS2 */
  284. #  endif /* apollo */
  285. # endif /* !IBMAIX && !cray && !__EMX__ && !linux */
  286.  
  287. # ifdef __EMX__
  288. #  define _sigextra_
  289. /* 16 */    0,        "Signal 16",
  290. /* 17 */    0,        "Signal 17",
  291. /* 18 */    "CLD",        "Child exited",
  292. /* 19 */    0,        "Signal 19",
  293. /* 20 */    0,        "Signal 20",
  294. /* 21 */    "BREAK",    "Break (Ctrl-Break)",
  295. # endif /* __EMX__ */
  296.  
  297.  
  298. # ifdef _CRAYCOM
  299. #  define _sigextra_
  300. /* 16 */    "IO",        "Input/output possible signal",
  301. /* 17 */    "URG",        "Urgent condition on I/O channel",
  302. /* 18 */    "CHLD",        "Child exited",
  303. /* 19 */    "PWR",        "Power failure",
  304. /* 20 */    "MT",        "Multitasking wake-up",
  305. /* 21 */    "MTKILL",    "Multitasking kill",
  306. /* 22 */    "BUFIO",    "Fortran asynchronous I/O completion",
  307. /* 23 */    "RECOVERY",    "Recovery",
  308. /* 24 */    "UME",        "Uncorrectable memory error",
  309. /* 25 */    0,        "Signal 25",
  310. /* 26 */    "CPULIM",    "CPU time limit exceeded",
  311. /* 27 */    "SHUTDN",    "System shutdown imminent",
  312. /* 28 */    "NOWAK",     "micro-tasking group-no wakeup flag set",
  313. /* 29 */    "THERR",    "Thread error - (use cord -T for detailed info)",
  314. /* 30 */    0,         "Signal 30",
  315. /* 31 */    0,         "Signal 31",
  316. /* 32 */    0,         "Signal 32",
  317. /* 33 */    0,        "Signal 33",
  318. /* 34 */    0,        "Signal 34",
  319. /* 35 */    0,        "Signal 35",
  320. /* 36 */    0,        "Signal 36",
  321. /* 37 */    0,        "Signal 37",
  322. /* 38 */    0,        "Signal 38",
  323. /* 39 */    0,        "Signal 39",
  324. /* 40 */    0,        "Signal 40",
  325. /* 41 */    0,        "Signal 41",
  326. /* 42 */    0,        "Signal 42",
  327. /* 43 */    0,        "Signal 43",
  328. /* 44 */    0,        "Signal 44",
  329. /* 45 */    0,        "Signal 45",
  330. /* 46 */    0,        "Signal 46",
  331. /* 47 */    0,        "Signal 47",
  332. /* 48 */    0,        "Signal 48",
  333. /* 49 */    0,        "Signal 49",
  334. /* 50 */    0,        "Signal 50",
  335. /* 51 */    0,        "Signal 51",
  336. /* 52 */    0,        "Signal 52",
  337. /* 53 */    0,        "Signal 53",
  338. /* 54 */    0,        "Signal 54",
  339. /* 55 */    0,        "Signal 55",
  340. /* 56 */    0,        "Signal 56",
  341. /* 57 */    0,        "Signal 57",
  342. /* 58 */    0,        "Signal 58",
  343. /* 59 */    0,        "Signal 59",
  344. /* 60 */    0,        "Signal 60",
  345. /* 61 */    0,        "Signal 61",
  346. /* 62 */    0,        "Signal 62",
  347. /* 63 */    0,            "Signal 63",
  348. /* 64 */    0,        "Signal 64",
  349. # endif /* _CRAYCOM */
  350.  
  351. # if defined(cray) && !defined(_CRAYCOM)
  352. # define _sigextra_
  353. /* 16 */    "IO",        "Input/output possible signal",
  354. /* 17 */    "URG",        "Urgent condition on I/O channel",
  355. /* 18 */    "CHLD",        "Child exited",
  356. /* 19 */    "PWR",        "Power failure",
  357. /* 20 */    "MT",        "Multitasking wake-up",
  358. /* 21 */    "MTKILL",    "Multitasking kill",
  359. /* 22 */    "BUFIO",    "Fortran asynchronous I/O completion",
  360. /* 23 */    "RECOVERY",    "Recovery",
  361. /* 24 */    "UME",        "Uncorrectable memory error",
  362. /* 25 */    "DLK",        "True deadlock detected",
  363. /* 26 */    "CPULIM",    "CPU time limit exceeded",
  364. /* 27 */    "SHUTDN",    "System shutdown imminent",
  365. /* 28 */    "STOP",     MSG_STOP,
  366. /* 29 */    "TSTP",     MSG_TSTP,
  367. /* 30 */    "CONT",       "Continue",
  368. /* 31 */    "TTIN",        MSG_TTIN,
  369. /* 32 */    "TTOU",        MSG_TTOU,
  370. /* 33 */    "WINCH",    "Window size changed",
  371. /* 34 */    "RPE",        "CRAY Y-MP register parity error",
  372. /* 35 */    0,        "Signal 35",
  373. /* 36 */    0,        "Signal 36",
  374. /* 37 */    0,        "Signal 37",
  375. /* 38 */    0,        "Signal 38",
  376. /* 39 */    0,        "Signal 39",
  377. /* 40 */    0,        "Signal 40",
  378. /* 41 */    0,        "Signal 41",
  379. /* 42 */    0,        "Signal 42",
  380. /* 43 */    0,        "Signal 43",
  381. /* 44 */    0,        "Signal 44",
  382. /* 45 */    0,        "Signal 45",
  383. /* 46 */    0,        "Signal 46",
  384. /* 47 */    0,        "Signal 47",
  385. /* 48 */    "INFO",        "Information signal",
  386. /* 49 */    "USR1",        "User-defined signal 1",
  387. /* 50 */    "USR2",        "User-defined signal 2",
  388. /* 51 */    0,        "Signal 51",
  389. /* 52 */    0,        "Signal 52",
  390. /* 53 */    0,        "Signal 53",
  391. /* 54 */    0,        "Signal 54",
  392. /* 55 */    0,        "Signal 55",
  393. /* 56 */    0,        "Signal 56",
  394. /* 57 */    0,        "Signal 57",
  395. /* 58 */    0,        "Signal 58",
  396. /* 59 */    0,        "Signal 59",
  397. /* 60 */    0,        "Signal 60",
  398. /* 61 */    0,        "Signal 61",
  399. /* 62 */    0,        "Signal 62",
  400. /* 63 */    0,            "Signal 63",
  401. /* 64 */    0,        "Signal 64",
  402. # endif /* cray */
  403.  
  404. /*
  405. **  In the UNIXpc these signal *ARE* used!!
  406. */
  407. # ifdef UNIXPC
  408. /* 20 */    "WIND",        "Window status changed",
  409. /* 21 */    "PHONE",     "Phone status changed",
  410. # endif /* UNIXPC */
  411.  
  412. # ifdef OREO
  413. #  define _sigextra_
  414. /* 20 */    "TSTP",        MSG_TSTP,
  415. /* 21 */    "TTIN",     MSG_TTIN,
  416. /* 22 */    "TTOU",     MSG_TTOU,
  417. /* 23 */    "STOP",        MSG_STOP,
  418. /* 24 */    "XCPU",        "Cputime limit exceeded",
  419. /* 25 */    "XFSZ",     "Filesize limit exceeded",
  420. /* 26 */    "VTALRM",     "Virtual time alarm",
  421. /* 27 */    "PROF",     "Profiling time alarm",
  422. /* 28 */    "WINCH",     "Window changed",
  423. /* 29 */    "CONT",        "Continued",
  424. /* 30 */    "URG",        "Urgent condition on IO channel",
  425. /* 31 */    "IO",        "Asynchronous I/O (select)",
  426. /* 32 */    0,        "Signal 32",
  427. # endif /* OREO */
  428.  
  429. # ifdef hpux
  430. #  define _sigextra_
  431. /* 20 */    "VTALRM",     "Virtual time alarm",
  432. /* 21 */    "PROF",     "Profiling time alarm",
  433. /* 22 */    "IO",         "Asynchronous I/O (select)",
  434. /* 23 */    "WINDOW",     "Window changed",
  435. /* 24 */    "STOP",        MSG_STOP,
  436. /* 25 */    "TSTP",        MSG_TSTP,
  437. /* 26 */    "CONT",        "Continued",
  438. /* 27 */    "TTIN",     MSG_TTIN,
  439. /* 28 */    "TTOU",     MSG_TTOU,
  440. /* 29 */    "URG",        "Urgent condition on IO channel",
  441. /* 30 */    "LOST",        "Remote lock lost (NFS)",
  442. /* 31 */    0,         "Reserved", /* Reserved */
  443. /* 32 */    "DIL",        "DIL signal",
  444. # endif /* hpux */
  445.  
  446. # ifdef stellar
  447. #  define _sigextra_
  448. /* 20 */    "WINDOW",     "Window changed",
  449. /* 21 */    "URG",        "Urgent condition on IO channel",
  450. /* 22 */    "POLL",     "Pollable event occured",
  451. /* 23 */    "STOP",        MSG_STOP,
  452. /* 24 */    "TSTP",        MSG_TSTP,
  453. /* 25 */    "CONT",        "Continued",
  454. /* 26 */    "TTIN",     MSG_TTIN,
  455. /* 27 */    "TTOU",     MSG_TTOU,
  456. /* 28 */    "IO",         "Asynchronous I/O (select)",
  457. /* 29 */    "XCPU",        "Cputime limit exceeded",
  458. /* 30 */    "XFSZ",     "Filesize limit exceeded",
  459. /* 31 */    "VTALRM",     "Virtual time alarm",
  460. /* 32 */    "PROF",     "Profiling time alarm",
  461. # endif /* stellar */
  462.  
  463. # ifdef ardent
  464. #  define _sigextra_
  465. /* 20 */    "WINDOW",     "Window changed",
  466. /* 21 */    "URG",        "Urgent condition on IO channel",
  467. /* 22 */    "POLL",     "Pollable event occured",
  468. /* 23 */    "STOP",        MSG_STOP,
  469. /* 24 */    "TSTP",        MSG_TSTP,
  470. /* 25 */    "TTIN",     MSG_TTIN,
  471. /* 26 */    "TTOU",     MSG_TTOU,
  472. /* 27 */    "CONT",        "Continued",
  473. /* 28 */    "XCPU",        "Cputime limit exceeded",
  474. /* 29 */    "XFSZ",     "Filesize limit exceeded",
  475. /* 30 */    "VTALRM",     "Virtual time alarm",
  476. /* 31 */    "PROF",     "Profiling time alarm",
  477. # endif /* ardent */
  478.  
  479. # if SYSVREL > 3
  480. #  define _sigextra_
  481. /* 20 */    "WINCH",     "Window change",
  482. /* 21 */    "URG",         "Urgent socket condition",
  483. /* 22 */    "IO",         "Socket I/O possible",
  484. /* 23 */    "STOP",        MSG_STOP,
  485. /* 24 */    "TSTP",        MSG_TSTP,
  486. /* 25 */    "CONT",        "Continued",
  487. /* 26 */    "TTIN",     MSG_TTIN,
  488. /* 27 */    "TTOU",     MSG_TTOU,
  489. /* 28 */    "VTALRM",    "Virtual timer expired",
  490. /* 29 */    "PROF",        "Profiling timer expired",
  491. /* 30 */    "XCPU",        "CPU time limit exceeded",
  492. /* 31 */    "XFSZ",     "File size limit exceeded",
  493. #ifdef SOLARIS2
  494. /* 32 */    "WAITING",    "Process's lwps are blocked",
  495. /* 33 */    "LWP",        "Special LWP signal",
  496. /* 34 */    0,        "Maximum number of signals",
  497. #else /* !SOLARIS2 */
  498. /* 32 */    0,        "Maximum number of signals",
  499. #endif /* SOLARIS2 */
  500. # endif /* SYSVREL > 3 */
  501.  
  502. # if defined(ISC) && defined(POSIX) 
  503. #  define _sigextra_
  504. /* 20 */    "WINCH",     "Window change",
  505. /* 21 */    0,         "Unused", /* SIGPHONE used only for UNIXPC */
  506. /* 22 */    "POLL",     "Pollable event occured",
  507. /* 23 */    "CONT",     "Continued",
  508. /* 24 */    "STOP",        MSG_STOP,
  509. /* 25 */    "TSTP",        MSG_TSTP,
  510. /* 26 */    "TTIN",     MSG_TTIN,
  511. /* 27 */    "TTOU",     MSG_TTOU,
  512. /* 28 */    0,          "number of signals",
  513. /* 29 */    0,        "Reserved", /* Reserved */
  514. /* 30 */    0,        "Reserved", /* Reserved */
  515. /* 31 */    0,         "Reserved", /* Reserved */
  516. /* 32 */    0,        "Maximum number of signals",
  517. # endif /* ISC && POSIX */
  518.  
  519. # if defined(SCO) && defined(POSIX) 
  520. #  define _sigextra_
  521. /* 20 */    "WINCH",     "Window change",
  522. /* 21 */    0,         "Unused", /* SIGPHONE used only for UNIXPC */
  523. /* 22 */    "POLL",     "Pollable event occured",
  524. /* 23 */    "STOP",        MSG_STOP,
  525. /* 24 */    "TSTP",        MSG_TSTP,
  526. /* 25 */    "CONT",     "Continued",
  527. /* 26 */    "TTIN",     MSG_TTIN,
  528. /* 27 */    "TTOU",     MSG_TTOU,
  529. /* 28 */    0,          "number of signals",
  530. /* 29 */    0,        "Reserved", /* Reserved */
  531. /* 30 */    0,        "Reserved", /* Reserved */
  532. /* 31 */    0,         "Reserved", /* Reserved */
  533. /* 32 */    0,        "Maximum number of signals",
  534. # endif /* SCO && POSIX */
  535.  
  536. # ifdef IRIS4D
  537. #  define _sigextra_
  538. /* 20 */    "STOP",        MSG_STOP,
  539. /* 21 */    "TSTP",        MSG_TSTP,
  540. /* 22 */    "POLL",     "Stream I/O pending",
  541. /* 23 */    "IO",         "Asynchronous I/O (select)",
  542. /* 24 */    "URG",        "Urgent condition on IO channel",
  543. /* 25 */    "WINCH",     "Window changed",
  544. /* 26 */    "VTALRM",     "Virtual time alarm",
  545. /* 27 */    "PROF",     "Profiling time alarm",
  546. /* 28 */    "CONT",        "Continued",
  547. /* 29 */    "TTIN",     MSG_TTIN,
  548. /* 30 */    "TTOU",     MSG_TTOU,
  549. /* 31 */    0,        "Signal 31",
  550. /* 32 */    0,        "Signal 32",
  551. # endif /* IRIS4D */
  552.  
  553. # ifdef IRIS3D
  554. #  define _sigextra_
  555. /* 20 */    0,        "Signal 20",
  556. /* 21 */    0,        "Signal 21",
  557. /* 22 */    0,        "Signal 22",
  558. /* 23 */    0,        "Signal 23",
  559. /* 24 */    0,        "Signal 24",
  560. /* 25 */    "WINCH",     "Window changed",
  561. /* 26 */    "IO",         "Asynchronous I/O (select)",
  562. /* 27 */    "URG",        "Urgent condition on IO channel",
  563. /* 28 */    "POLL",     "Stream I/O pending",
  564. /* 29 */    0,        "Signal 29",
  565. /* 30 */    0,        "Signal 30",
  566. /* 31 */    0,        "Signal 31",
  567. /* 32 */    0,        "Signal 32",
  568. # endif /* IRIS3D */
  569.  
  570. # ifdef apollo
  571. #  define _sigextra_
  572. /* 20 */    "STOP",        MSG_STOP,
  573. /* 21 */    "TSTP",        MSG_TSTP,
  574. /* 22 */    "CONT",        "Continued",
  575. /* 23 */    "CHLD",        "Child stopped or exited",
  576. /* 24 */    "TTIN",     MSG_TTIN,
  577. /* 25 */    "TTOU",     MSG_TTOU,
  578. /* 26 */    "IO",         "Asynchronous I/O (select)",
  579. /* 27 */    "XCPU",        "Cputime limit exceeded",
  580. /* 28 */    "XFSZ",     "Filesize limit exceeded",
  581. /* 29 */    "VTALRM",     "Virtual time alarm",
  582. /* 30 */    "PROF",     "Profiling time alarm",
  583. /* 31 */    "URG",        "Urgent condition on IO channel",
  584. /* 32 */    "WINCH",     "Window changed",
  585. # endif /* apollo */
  586.  
  587. # ifdef masscomp
  588. #  define _sigextra_
  589. /* 20 */    "STOP",        MSG_STOP,
  590. /* 21 */    "TSTP",        MSG_TSTP,
  591. /* 22 */    "CONT",        "Continued",
  592. /* 23 */    "TTIN",     MSG_TTIN,
  593. /* 24 */    "TTOU",     MSG_TTOU,
  594. /* 25 */    "TINT",     "New input character",
  595. /* 26 */    "XCPU",        "Cputime limit exceeded",
  596. /* 27 */    "XFSZ",     "Filesize limit exceeded",
  597. /* 28 */    "WINCH",     "Window changed",
  598. /* 29 */    "URG",        "Urgent condition on IO channel",
  599. /* 30 */    "VTALRM",     "Virtual time alarm",
  600. /* 31 */    "PROF",     "Profiling time alarm",
  601. /* 32 */    "IO",         "Asynchronous I/O (select)",
  602. # endif /* masscomp */
  603.  
  604. # ifdef aiws
  605. #  define _sigextra_
  606. /* 20 */    0,        "Signal 20",
  607. /* 21 */    0,        "Signal 21",
  608. /* 22 */    0,        "Signal 22",
  609. /* 23 */    "AIO",         "LAN Asyncronous I/O",
  610. /* 24 */    "PTY",         "PTY read/write availability",
  611. /* 25 */    "IOINT",     "I/O intervention required",
  612. /* 26 */    "GRANT",     "monitor mode granted",
  613. /* 27 */    "RETRACT",     "monitor mode retracted",
  614. /* 28 */    "WINCH",    "Window size changed",
  615. /* 29 */    0,        "Signal 29",
  616. /* 30 */    "SOUND",     "sound completed",
  617. /* 31 */    "MSG",         "input hft data pending",
  618. /* 32 */    0,        "Signal 32",
  619. # endif /* aiws */
  620.  
  621. # if defined(m88k) || defined(__m88k__)    /* Motorola 88100: POSIX/BCS signals */
  622. #  define _sigextra_
  623. /* 20 */    "WINCH",     "Window changed",
  624. /* 21 */    0,        "Signal 21",
  625. /* 22 */    "POLL",     "Stream I/O pending",
  626. /* 23 */    "STOP",        MSG_STOP,
  627. /* 24 */    "TSTP",        MSG_TSTP,
  628. /* 25 */    "CONT",        "Continued",
  629. /* 26 */    "TTIN",     MSG_TTIN,
  630. /* 27 */    "TTOU",     MSG_TTOU,
  631. /* 28 */    0,        "Signal 28",
  632. /* 29 */    0,        "Signal 29",
  633. /* 30 */    0,        "Signal 30",
  634. /* 31 */    0,        "Signal 31",
  635. /* 32 */    0,        "Signal 32",
  636. /* 33 */    "URG",        "Urgent condition on IO channel",
  637. /* 34 */    "IO",         "Asynchronous I/O (select)",
  638. /* 35 */    "XCPU",        "Cputime limit exceeded",
  639. /* 36 */    "XFSZ",     "Filesize limit exceeded",
  640. /* 37 */    "VTALRM",     "Virtual time alarm",
  641. /* 38 */    "PROF",        "Profiling time alarm",
  642. /* 39 */    0,        "Signal 39",
  643. /* 40 */    "LOST",        "Resource lost",
  644. /* 41 */    0,        "Signal 41",
  645. /* 42 */    0,        "Signal 42",
  646. /* 43 */    0,        "Signal 43",
  647. /* 44 */    0,        "Signal 44",
  648. /* 45 */    0,        "Signal 45",
  649. /* 46 */    0,        "Signal 46",
  650. /* 47 */    0,        "Signal 47",
  651. /* 48 */    0,        "Signal 48",
  652. /* 49 */    0,        "Signal 49",
  653. /* 50 */    0,        "Signal 50",
  654. /* 51 */    0,        "Signal 51",
  655. /* 52 */    0,        "Signal 52",
  656. /* 53 */    0,        "Signal 53",
  657. /* 54 */    0,        "Signal 54",
  658. /* 55 */    0,        "Signal 55",
  659. /* 56 */    0,        "Signal 56",
  660. /* 57 */    0,        "Signal 57",
  661. /* 58 */    0,        "Signal 58",
  662. /* 59 */    0,        "Signal 59",
  663. /* 60 */    0,        "Signal 60",
  664. /* 61 */    0,        "Signal 61",
  665. /* 62 */    0,        "Signal 62",
  666. /* 63 */    0,        "Signal 63",
  667. /* 64 */    0,        "Signal 64",
  668. # endif /* m88k || __m88k__ */
  669.  
  670. # ifdef IBMAIX
  671. #  define _sigextra_
  672. /* 16 */    "URG",        "Urgent condition on IO channel",
  673. /* 17 */    "STOP",        MSG_STOP,
  674. /* 18 */    "TSTP",        MSG_TSTP,
  675. /* 19 */    "CONT",        "Continued",
  676. /* 20 */    "CHLD",        "Child exited",
  677. /* 21 */    "TTIN",     MSG_TTIN,
  678. /* 22 */    "TTOU",     MSG_TTOU,
  679. /* 23 */    "IO",       "IO possible interrupt",
  680. /* 24 */    "XCPU",        "Cputime limit exceeded",
  681. /* 25 */    "XFSZ",     "Filesize limit exceeded",
  682. /* 26 */    0,        "Signal 26",
  683. /* 27 */    "MSG",         "Data in HFT ring buffer",
  684. /* 28 */    "WINCH",    "Window size changed",
  685. /* 29 */    "PWR",        "Power failure",
  686. /* 30 */    "USR1",        "User signal 1",
  687. /* 31 */    "USR2",     "User signal 2",
  688. /* 32 */    "PROF",        "Profiling time alarm",
  689. /* 33 */    "DANGER",     "System Crash Imminent",
  690. /* 34 */    "VTALRM",     "Virtual time alarm",
  691. /* 35 */    "MIGRATE",    "Migrate process",
  692. /* 36 */    "PRE",          "Programming exception",
  693. /* 37 */    0,        "Signal 37",
  694. /* 38 */    0,        "Signal 38",
  695. /* 39 */    0,        "Signal 39",
  696. /* 40 */    0,        "Signal 40",
  697. /* 41 */    0,        "Signal 41",
  698. /* 42 */    0,        "Signal 42",
  699. /* 43 */    0,        "Signal 43",
  700. /* 44 */    0,        "Signal 44",
  701. /* 45 */    0,        "Signal 45",
  702. /* 46 */    0,        "Signal 46",
  703. /* 47 */    0,        "Signal 47",
  704. /* 48 */    0,        "Signal 48",
  705. /* 49 */    0,        "Signal 49",
  706. /* 50 */    0,        "Signal 50",
  707. /* 51 */    0,        "Signal 51",
  708. /* 52 */    0,        "Signal 52",
  709. /* 53 */    0,        "Signal 53",
  710. /* 54 */    0,        "Signal 54",
  711. /* 55 */    0,        "Signal 55",
  712. /* 56 */    0,        "Signal 56",
  713. /* 57 */    0,        "Signal 57",
  714. /* 58 */    0,        "Signal 58",
  715. /* 59 */    0,        "Signal 59",
  716. /* 60 */    "GRANT",     "HFT monitor mode granted",
  717. /* 61 */    "RETRACT",     "HFT monitor mode should be relinguished",
  718. /* 62 */    "SOUND",    "HFT sound control has completed",
  719. #  ifdef SIGSAK
  720. /* 63 */    "SAK",        "Secure attention key",
  721. #  else
  722. /* 63 */    0,            "Signal 63",
  723. #  endif
  724. /* 64 */    0,        "Signal 64",
  725. # endif /* IBMAIX */
  726.  
  727. # ifdef _SEQUENT_
  728. #  define _sigextra_
  729. /* 20 */    "WINCH",     "Window changed",
  730. /* 21 */    0,        "Signal 21",
  731. /* 22 */    "POLL",     "Stream I/O pending",
  732. /* 23 */    "STOP",        MSG_STOP,
  733. /* 24 */    "TSTP",        MSG_TSTP,
  734. /* 25 */    "CONT",        "Continued",
  735. /* 26 */    "TTIN",     MSG_TTIN,
  736. /* 27 */    "TTOU",     MSG_TTOU,
  737. /* 28 */    0,         "Signal 28",
  738. /* 29 */    0,        "Signal 29",
  739. /* 30 */    0,         "Signal 30",
  740. /* 31 */    0,         "Signal 31",
  741. /* 32 */    0,        "Signal 32",
  742. # endif /* _SEQUENT_ */
  743.  
  744. # ifdef linux
  745. #  define _sigextra_
  746. /* 16 */    0,        "Signal 16",
  747. /* 17 */    "CHLD",        "Child exited",
  748. /* 18 */    "CONT",        "Continued",
  749. /* 19 */    "STOP",        MSG_STOP,
  750. /* 20 */    "TSTP",        MSG_TSTP,
  751. /* 21 */    "TTIN",     MSG_TTIN,
  752. /* 22 */    "TTOU",     MSG_TTOU,
  753. /* 23 */    0,           "Signal 23",
  754. /* 24 */    0,        "Signal 24",
  755. /* 25 */    0,         "Signal 25",
  756. /* 26 */    0,         "Signal 26",
  757. /* 27 */    0,        "Signal 27",
  758. /* 28 */    "WINCH",     "Window changed",
  759. /* 29 */    0,        "Signal 29",
  760. /* 30 */    0,        "Signal 30",
  761. /* 31 */    0,        "Signal 31",
  762. /* 32 */    0,        "Signal 32",
  763. # endif /* linux */
  764.  
  765. # ifndef _sigextra_
  766. #  ifndef UNIXPC
  767. /* 20 */    0,        "Signal 20",
  768. /* 21 */    0,        "Signal 21",
  769. #  endif /* !UNIXPC */
  770. /* 22 */    0,        "Signal 22",
  771. /* 23 */    0,        "Signal 23",
  772. /* 24 */    0,        "Signal 24",
  773. /* 25 */    0,        "Signal 25",
  774. /* 26 */    0,        "Signal 26",
  775. /* 27 */    0,        "Signal 27",
  776. /* 28 */    0,        "Signal 28",
  777. /* 29 */    0,        "Signal 29",
  778. /* 30 */    0,        "Signal 30",
  779. /* 31 */    0,        "Signal 31",
  780. /* 32 */    0,        "Signal 32",
  781. # endif /* _sigextra_ */
  782.  
  783. #else /* bsd */
  784.  
  785. # ifdef _sigextra_
  786. #  undef  _sigextra_
  787. # endif /* _sigextra_ */
  788.  
  789. # ifdef _VMS_POSIX
  790. #  define _sigextra_
  791. /* 16 */    0,        "Signal 16",
  792. /* 17 */    0,        "Signal 17",
  793. /* 18 */    "USR1",        "User defined signal 1",
  794. /* 19 */    "USR2",        "User defined signal 2",
  795. /* 20 */    "CHLD",        "Child exited",
  796. /* 21 */    "CONT",        "Continued",
  797. /* 22 */    "STOP",        MSG_STOP,
  798. /* 23 */    "TSTP",        MSG_TSTP,
  799. /* 24 */    "TTIN",     MSG_TTIN,
  800. /* 25 */    "TTOU",     MSG_TTOU,
  801. /* 26 */        "DEBUG",        "Signaling SS$_DEBUG", 
  802. # else /* BSD */
  803. /* 16 */    "URG",        "Urgent condition on IO channel",
  804. /* 17 */    "STOP",        MSG_STOP,
  805. /* 18 */    "TSTP",        MSG_TSTP,
  806. /* 19 */    "CONT",        "Continued",
  807. /* 20 */    "CHLD",        "Child exited",
  808. /* 21 */    "TTIN",     MSG_TTIN,
  809. /* 22 */    "TTOU",     MSG_TTOU,
  810. /* 23 */    "IO",       "IO possible interrupt",
  811. /* 24 */    "XCPU",        "Cputime limit exceeded",
  812. /* 25 */    "XFSZ",     "Filesize limit exceeded",
  813. /* 26 */    "VTALRM",     "Virtual time alarm",
  814. /* 27 */    "PROF",        "Profiling time alarm",
  815. # endif /* _VMS_POSIX */
  816.  
  817. # ifndef _sigextra_
  818. #  if defined(RENO) || defined(BSD4_4)
  819. #   define _sigextra_
  820. /* 28 */    "WINCH",    "Window size changed",
  821. /* 29 */    "INFO",        "Information request",
  822. /* 30 */    "USR1",        "User defined signal 1",
  823. /* 31 */    "USR2",        "User defined signal 2",
  824. /* 32 */    0,        "Signal 32",
  825. #  endif /* RENO || BSD4_4 */
  826. # endif /* !_sigextra_ */
  827.  
  828. # ifndef _sigextra_
  829. #  if defined(SUNOS4) || defined(ultrix) || defined(hp9000) || defined(convex)
  830. #   define _sigextra_
  831. /* 28 */    "WINCH",     "Window changed",
  832. /* 29 */    "LOST",        "Resource lost",
  833. /* 30 */    "USR1",        "User signal 1",
  834. /* 31 */    "USR2",        "User signal 2",
  835. /* 32 */    0,        "Signal 32",
  836. #  endif /* SUNOS4 || ultrix || hp9000 || convex */
  837. # endif /* !_sigextra_ */
  838.  
  839. # ifndef _sigextra_
  840. #  ifdef pyr
  841. #   define _sigextra_
  842. /* 28 */    "USR1",        "User signal 1",
  843. /* 29 */    "USR2",        "User signal 2",
  844. /* 30 */    "PWR",        "Power failure",
  845. /* 31 */    0,        "Signal 31",
  846. /* 32 */    0,        "Signal 32",
  847. #  endif /* pyr */
  848. # endif /* !_sigextra_ */
  849.  
  850. # ifndef _sigextra_
  851. /* 28 */    "WINCH",    "Window size changed",
  852. /* 29 */    0,        "Signal 29",
  853. /* 30 */    "USR1",        "User defined signal 1",
  854. /* 31 */    "USR2",        "User defined signal 2",
  855. /* 32 */    0,        "Signal 32",
  856. # endif /* _sigextra_ */
  857.  
  858. #endif /* (SYSVREL > 0) || DGUX || IBMAIX */
  859.  
  860. /* These are here for systems with bad NSIG */
  861. #ifndef POSIX
  862. /* 33 */    0,        "Signal 33"
  863. #else /* POSIX */
  864. /* 65 */    0,        "Signal 65"
  865. #endif /* POSIX */
  866. };
  867.